-
Notifications
You must be signed in to change notification settings - Fork 10.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 4.5.3 #24875
Closed
Closed
Release 4.5.3 #24875
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Clickup task : https://app.clickup.com/t/25jwe53 Description : Whenever the user state is changed (Explicitly or automatically by the virtue of user's inactivity) Voip component gets reloaded. Also during the reload of the page, the Voip component gets initialised multiple times, causing multiple websockets opened to asterisk. This happens because of the following facts: 1. The useEffect of useVoipClient, which creates the Voip component had user in its dependency list. 2. Whenever any user property changes, it would cause the useEffect to trigger and execute the entire initialisation of voip component. 3. When state change happens, it triggers update on all the components. So OmnichannelCallToggleReady gets re-rendered, also useVoipClient causes reinitialisation (user state change). 4. Now, when the useEffect of OmnichannelCallToggleReady gets executed, voipClient.getRegistrarState(); value is not |registered| because the state change has caused reinitialisation of voip component, which is not registered. 5. So again, the phone button value gets reset, the agent becomes unavailable. Fix: Even though the user state may change, user identity does not change. SIP client reinitialisation should happen only when userId changes. So the fix is not to add the entire userObject in the dependency list of the useEffect of useVoipClient hook. Instead 1. Create a state userId. 2. Add another useEffect watching the user. Whenever user becomes available or any user change happens, update the userId 3. The useEffect which does the voip client initialisation, should have the userId in the dependency list. When this is done, the Voip initialisation will happen only when userId changes. * Clickup task : https://app.clickup.com/t/25jwe53 Description : Realised that we have useUserId hook. As we have this hook, removed the useEffect which fetches the userId from user. Also removed the state. Instead added a constant userId. * Clickup Tasks: https://app.clickup.com/t/25jwe53 and https://app.clickup.com/t/22xdyn5 Description : Though this workspace was fix the first issue, it was realised that there are few other issues which are dependent on this(Not all may have a clickup task associated). This commit also fixes following : 1. Voip button does not get disabled when the user state changes. This happens because the user gets updated whenever the state change happens, this causes useVoipClient to reload this reload causes the reinitialsation of voipUser which initialises the connection again. 2. PR #24752 : This PR fixes the icon display only when the extension associated with the user. This is also fixed as this was broken due to fix for #1. (THis was using user object, and we are now not using the user object directly in the useEffect for voipClient initialisation. 3. This fix broke the fact that whenever user gets associated with the agent, voip button gets active. But because we removed the use of user, This was broken too. This got fixed by the virtue of fixing #2, i.e using extension as a state. 4. Even though the association is deleted, agent was still receiving the call. This was because the SIP user was never unregistered and cleared when the association gets deleted. Fixed this issue by calling voipClient.stop() method. This would take care of unregistering if the UA is registered and then closing the webSocket.
…cribing (#24837) * Standarize queue behavior for managers and agents when subscribing to department/public queues * Fix import * Remove task from comment
Co-authored-by: Tiago Evangelista Pinto <tiago.evangelista@rocket.chat>
KevLehman
approved these changes
Mar 18, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
2022-03-18 · 1 🚀 · 6 🐛 · 3 👩💻👨💻
Engine versions
14.18.3
6.14.15
'3.6', '4.0', '4.2', '4.4', '5.0'
1.31.0
🚀 Improvements
🐛 Bug fixes
VOIP: SidebarFooter component (#24838)
Improve the CallProvider code;
Adjust the text case of the VoIP component on the FooterSidebar;
Fix the bad behavior with the changes in queue's name.
Broken build caused by PRs modifying same file differently (#24863)
Disable voip button when call is in progress (#24864)
Show only enabled departments on forward (#24829)
VoIP button gets disabled whenever user status changes (#24789)
Wrong param usage on queue summary call (#24799)
👩💻👨💻 Core Team 🤓